Ітераційні методи розв’язування систем лінійних алгебраїчних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2004
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
ІБ – 41

Частина тексту файла

Міністерство освіти та науки України Національний університет “Львівська політехніка” Звіт про виконання лабораторної роботи N2 з курсу “Алгоритмічні основи криптології” на тему: “Ітераційні методи розв’язування систем лінійних алгебраїчних рівнянь ” Львів – 2004 Мета роботи: вивчити найпоширеніші ітераційні методи розв’язку систем лінійних алгебраїчних рівнянь, навчитись розв’язувати на ЕОМ системи алгебраїчних рівнянь, провести порівняльний аналіз розглянутих методів. Завдання: написати програму на мові програмування Сі яка б розв’язувала систему лінійних алгебраїчних рівнянь методом Зейделя. 24,21+s 2,42 3,85 2,31 31,49 1,52 3,49 4,84 28,72+s 30,24 40,95-r 42,81 де s = 0.2*k , r = 0.2*p k=0, p=5. Блок – схема алгоритму роботи програми Текст програми: #include <math.h> #include <stdio.h> #define n 3 #define max(x,y) (fabs(x)>=fabs(y))?x:y void main (void) { float a[n+1][n+1]; float b[n+1],s[n]; float x0[n],x1[n]; double E,Emax,E1[n]; int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) scanf("%f",&a[i][j]); } for (i=1;i<=n;i++) scanf("%f",&b[i]); E=0.00001; for(i=1;i<=n;i++) { x1[i]=b[i]/a[i][i]; E1[i]=1; } do { for (i=1;i<=n;i++) { x0[i]=x1[i]; } for (i=1;i<=n;i++) { x1[i]=b[i]; for (j=1;j<=n;j++) { x1[i]=x1[i]-a[i][j]*x0[j]; if (i==j) x1[i]=x1[i]+a[i][j]*x0[j]; } x1[i]=x1[i]/a[i][i]; } for (i=1;i<=n;i++) { E1[i]=(x1[i]-x0[i])/x1[i]; } for (i=1;i<=n-2;i++) { Emax=max(E1[i],E1[i+1]); Emax=max(Emax,E1[i+2]); } } while (Emax>E); for (i=1;i<=n;i++) { printf("\n X[%d] = %f",i,x1[i]); } for (i=1;i<=n;i++) { s[i]=0; for (j=1;j<=n;j++) { s[i]=s[i]+a[i][j]*x1[j]; } } for (i=1;i<=n;i++) { printf("\n S[%d] = %f",i,s[i]); } } Результат виконання програми:  Висновок: Розв’язання систем лінійних алгебраїчних рівнянь методом простої ітерації або методом Зейделя можна досить легко реалізувати на ЕОМ за допомогою програми в середовищі Сі. Основна відмінність методу Зейделя полягає в тому, що при обчисленні кожного наступного наближення невідомого аргументу враховуються вже знайдені раніше невідомі поточного наближення. Розв’язання таких систем на ЕОМ є дуже актуальним, оскільки цей процес є набагато легшим та короткотривалішим ніж розв’язання систем лінійних алгебраїчних рівнянь вручну.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини